<html>
    <head>
        <title>创建Abp应用程序容器选项类 AbpApplicationCreationOptions</title>
    </head>
    <body>
        <script>
             // 四、AbpApplicationCreationOptions abp应用程序创建选项类
                                /*
                                       所有CreateAsync重载都可以获得可选的 Action<AbpApplicationCreationOptions> 参数来配置应用程序创建过程中的选项：
                                            
                                            using var application = await AbpApplicationFactory
                                                        .CreateAsync<MyConsoleDemoModule>(options=>{
                                                            options.ApplicationName ="MyApp"    
                                                        })

                                       在这里，我们已经传递了一个 lambda 方法来配置ApplicationName选项属性。以下是所有选项的列表：
                                              ①、ApplicationName：应用程序的人类可读名称。它是应用程序的唯一值。
                                              ②、Configuration：可用于设置托管系统未提供的应用程序配置。ASP.NETCore和其他. NET托管应用程序不需要它。但是，如果你已经将 
                                              ②、Environment：应用程序的环境名称。    
                                              ④、PlugInSources：插件源列表
                                              ⑤、Services：可用于注册服务依赖项的IServiceCollection对象。你通常不需要它，因为你在模块类中配置服务。但是，它可以在为AbpApplicationCreationOptions类编写扩展方法时使用。     
                                */                    
                                /*
                                    1、ApplicationName 选项：
                                            如上所述，ApplicationName选项是应用程序的人类可读名称。它是应用程序的唯一值。
                                             ApplicationName被ABP在几个地方用来区分应用程序。
                                                例如： 审计日志系统在相关应用程序写入的每个审计日志记录中保存了ApplicationName，因此你可以了解哪个应用程序创建了审计日志条目。
                                                      因此，如果你的系统由多个应用程序（如微服务解决方案）组成，它们正在将审计日志保存到一个点，你应该确保每个应用程序都有不同的ApplicationName。
                                            
                                            ApplicationName 的默认值一般是当前整个程序集的名称 (通常是 .net 解决方案中的项目名称)。这适用于大多数情况，因为每个应用程序通常都有一个唯一的条目程序集名称。
                                            
                                            有两种方法可以设置应用程序名称：
                                               ①、在appsettings.json 文件中设置：
                                                        {
                                                            "ApplicationName": "Services.Ordering"
                                                        }

                                               ②、或者在创建ABP应用程序时设置AbpApplicationCreationOptions.ApplicationName：
                                                        await builder.AddApplicationAsync<OrderingServiceHttpApiHostModule>(options =>
                                                        {
                                                            options.ApplicationName = "Services.Ordering";
                                                        });

                                            
                                    2、IApplicationInfoAccessor 接口
                                             如果你需要稍后在解决方案中访问ApplicationName，你可以注入IApplicationInfoAccessor服务并从其ApplicationName属性中获取值。
                                             IApplicationInfoAccessor还提供了一个InstanceId值，这是应用程序启动时生成的随机GUID值。你可以使用该值来区分应用程序实例

                                */
        </script>
    </body>
</html>